作者:mobiledu2502905727 | 来源:互联网 | 2023-01-16 18:07
我有一个Dockerfile
将实现FROM
私人注册表的图像.我构建这个文件没有任何问题Docker version 1.12.6, build 78d1802
和docker-compose version 1.8.0, build unknown
,但在另一台机器,它有Docker version 17.06.1-ce, build 874a737
和docker-compose version 1.16.1, build 6d1ac21
,docker-compose build
返回:
FROM my.private.gitlab.registry:port/image:tag
http://my.private.gitlab.registry:port/v2/docker/image/manifests/tag: denied: access forbidden
docker pull my.private.gitlab.registry:port/image:tag
返回相同.
请注意,我试图获得my.private.registry:port/image:tag
并且http://my.private.registry:port/v2/docker/image/manifests/tag
已被捕获.
1> Tarun Lalwan..:
如果这是经过身份验证的注册表,则需要docker login
在构建此项目的计算机上运行.
这只需要每个主机完成一次.然后,该命令将auth缓存在文件中
$ cat ~/.docker/config.json
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "......="
}
}
}
2> Michael..:
我注意到您的URL方案使用http协议-需要将Docker配置为允许不安全的注册表。
创建或修改您的daemon.json
(在以下位置之一中需要):
Linux: /etc/docker/
视窗: C:\ProgramData\Docker\config\
带有内容:
{
"insecure-registries" : [ "my.private.gitlab.registry:port" ]
}
然后重新启动Docker(不仅仅是终端会话),然后重试。
登录后:
docker login my.private.gitlab.registry:port
按照tarun-lalwani的回答,然后应将auth添加到配置中,以备将来使用(如docker pull
)。